﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;

namespace VNet.VisiSuite.Service.Contact.Message.Item
{
    [DataContract(Namespace = VisiSuiteNamespace.Uri + "dto/AreaItem")]
    public class AreaItem
    {
        [DataMember(IsRequired = true)]
        public int AreaId { get; set; }

        [DataMember(IsRequired = true)]
        public int PlantId { get; set; }

        [DataMember(IsRequired = true)]
        public string AreaName { get; set; }

        [DataMember(IsRequired = true)]
        public string Description { get; set; }

        [DataMember(IsRequired = true)]
        public bool Enabled { get; set; }

        [DataMember(IsRequired = true)]
        public string CreatedBy { get; set; }

        [DataMember(IsRequired = true)]
        public string LastUpdatedBy { get; set; }

        [DataMember(IsRequired = true)]
        public DateTime CreatedDate { get; set; }

        [DataMember(IsRequired = true)]
        public DateTime LastUpdatedDate { get; set; }

        [DataMember(IsRequired = true)]
        public IList<CellItem> Cells { get; set; }

        [DataMember(IsRequired = true)]
        public bool IsDeleted { get; set; }

        [DataMember(IsRequired = true)]
        public bool ContinuousProcess { get; set; }

        [DataMember(IsRequired = true)]
        public int? GoodReasonCodeId { get; set; }

        [DataMember(IsRequired = true)]
        public int? ReworkReasonCodeId { get; set; }

        [DataMember(IsRequired = true)]
        public int? ScrapReasonCodeId { get; set; }

        [DataMember(IsRequired = true)]
        public int? ShiftStartReasonCodeId { get; set; }

        [DataMember(IsRequired = true)]
        public int? CloseWorkOrderReasonCodeId { get; set; }

        [DataMember(IsRequired = true)]
        public int? NoWorkOrdersReasonCodeId { get; set; }

        [DataMember(IsRequired = true)]
        public int WeekStartDay { get; set; }

        [DataMember(IsRequired = true)]
        public int MonthStartDay { get; set; }

        [DataMember(IsRequired = true)]
        public int ProductionMeterWidth { get; set; }

        [DataMember(IsRequired = true)]
        public int ProductionMeterLabelFreq { get; set; }

        [DataMember(IsRequired = true)]
        public int? PlannedReasonCodeId { get; set; }

        [DataMember(IsRequired = true)]
        public int? ProductionGoal { get; set; }

        [DataMember(IsRequired = true)]
        public byte[] TimeStamp { get; set; }
    }
}
